Repository navigation
Conversation
- calcDiscountRate를 product-storefront-mappers.helper에서 common/utils/discount-rate로 옮김. 주문 목록도 같은 규칙을 쓰게 돼 buildRegionLabel처럼 공용 표시 규칙으로 둠. - product 쪽 import 3곳 변경, spec은 it.each 표로 옮김(7케이스).
FE 마이페이지 주문상황 카드("매장명 · 지역", "할인율 % 금액")에 쓸 값이 MyOrderSummary에 없었음.
- 할인율: 주문 기준 discount_price ÷ subtotal_price 반올림(0~100, 할인 없으면 0).
옆에 붙는 금액이 주문 총액이라 숫자를 맞춤. 옵션 추가금은 할인 대상이 아니라 옵션 주문은 상품 카드 할인율보다 낮게 나옴.
- 지역: order_item.store_region_label_snapshot(nullable) 추가, 주문 생성 때 buildRegionLabel로 저장.
매장 실시간 조인은 read-boundary 허용 목록(Order.items.store.region)을 늘려 스냅샷으로 감.
- 마이그레이션 백필은 현재 매장 기준 같은 규칙. 빈 값 판정은 CHAR_LENGTH(NULLIF는 PAD SPACE로 공백값까지 비움).
- ProductRepository.findProductDetailById의 store select에 주소·지역 추가(Product·Store·Region 모두 catalog라 경계 항목 증가 없음).
- SDL: MyOrderSummary.discountRate: Int!, regionLabel: String (필드 추가만, FE 파괴적 변경 없음).
- 팩토리 createOrderItem은 미지정 시 생성 경로 규칙으로 지역 스냅샷을 채움.
- 시드 o1·o4: p1(정가 40,000·판매가 35,000)인데 subtotal 35,000/discount 0이던 것을 생성 경로 규칙(40,000/5,000)으로 맞춤.
테스트 17건 추가
- order-my.service: discountRate 4(옵션 포함·subtotal 0 반증), regionLabel 2(주문 뒤 매장 주소 변경 반증)
- order-checkout.service: 지역 스냅샷 3(시·동 / 지역명 / null)
- 백필 migration spec 8: buildRegionLabel과 결과 비교, 공백값 케이스는 NULLIF 버전에서 실패하는 것 확인
- order-my.resolver: 전체 경로 단언에 두 필드
feat: 내 주문 목록에 할인율·매장 지역 추가
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
FindingsActionable comments posted: 2 Caution Review failedThe pull request is closed.
|
| Layer / File(s) | Summary |
|---|---|
지역 스냅샷 저장 구조 및 백필 prisma/schema.prisma, prisma/migrations/.../migration.sql, src/features/order/repositories/order-item-region-label-snapshot.migration.spec.ts |
OrderItem에 nullable 지역 표기 스냅샷 컬럼을 추가합니다. 기존 주문 품목의 스냅샷을 매장 주소와 지역명으로 백필하며, 주소 및 지역 상태별 결과를 DB 테스트로 검증합니다. |
주문 생성 시 지역 스냅샷 저장 src/features/order/services/order-checkout.service.ts, src/features/order/repositories/order.repository.ts, src/test/factories/order.factory.ts, prisma/seed/orders.ts, 관련 테스트 |
체크아웃이 매장 지역 표기를 주문 품목에 전달하고 저장합니다. 시드 데이터, 테스트 팩토리와 테스트도 스냅샷 값을 처리합니다. |
주문 요약 할인율 및 지역 표기 src/common/utils/discount-rate*, src/features/order/order-my.graphql, src/features/order/services/order-my.service.ts, src/features/order/types/order-my-output.type.ts, src/features/product/services/* |
할인율 계산을 공통 유틸리티로 추가하고 상품 서비스의 사용처를 옮깁니다. 주문 요약은 할인율과 저장된 지역 표기를 반환하며 관련 테스트가 계산 및 null 처리를 확인합니다. |
상품 상세 매장 위치 정보
| Layer / File(s) | Summary |
|---|---|
상품 상세 매장 조회 확장 src/features/product/repositories/product.repository.ts |
상품 상세 조회 결과의 매장 정보에 시·동네 주소와 지역명을 추가합니다. |
Estimated code review effort: 3 (Moderate) | ~25 minutes
Sequence Diagram(s)
sequenceDiagram
participant OrderCheckoutService
participant buildRegionLabel
participant OrderRepository
participant order_item
OrderCheckoutService->>buildRegionLabel: 매장 주소와 지역으로 표기 생성
buildRegionLabel-->>OrderCheckoutService: 지역 표기 반환
OrderCheckoutService->>OrderRepository: 지역 스냅샷 전달
OrderRepository->>order_item: 스냅샷 저장
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
🧹 knip — dead-code 리포트전체 리포트
|
🩺 NestJS Doctor — 90/100 (Excellent)진단 493건 (error 13).
architecture / security 상위 항목
|
Coverage report
Show new covered files 🐣
Test suite run success4352 tests passing in 391 suites. Report generated by 🧪jest coverage report action from 87f1e70 |
마이페이지 주문상황 화면 카드에 쓸 할인율과 매장 지역 값을 운영에 반영합니다.
MyOrderSummary에discountRate: Int!(주문 기준 할인 금액 ÷ 할인 전 합계, 할인이 없으면 0)와regionLabel: String(주문 시점 매장 지역 표기)을 추가했습니다.order_item.store_region_label_snapshot에 주문 생성 때 저장합니다.calcDiscountRate를src/common/utils로 옮겼습니다(동작 변화 없음).운영 반영 사항입니다.
20261102144339_order_item_region_label_snapshot)이 적용됩니다.order_item에 nullable 컬럼을 하나 추가합니다.UPDATE가 함께 돕니다.Summary by CodeRabbit